/**
 *   _                                                          _   
 *  | | ____ _ _ __ _ __ ___   __ _  ___           _ __ ___ ___| |_ 
 *  | |/ / _` | '__| '_ ` _ \ / _` |/ __|  _____  | '__/ _ | __| __|
 *  |   < (_| | |  | | | | | | (_| | (__  |_____| | | |  __|__ \ |_ 
 *  |_|\_\__,_|_|  |_| |_| |_|\__,_|\___|         |_|  \___|___/\__|
 *         
 *  Copyright  2011 Kondra, Inc. 
 * 
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at:
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

package com.kondra.karmac.rest
{
	import flash.events.Event;
	
	/**
	 * The <code>BatchServiceResult</code> class is used to pass result data from a
	 * batch service request to the service notification handler methods. 
	 * 
	 * @author Jared Kaplan
	 */ 
	public class BatchServiceResult extends ServiceResult
	{
		public function BatchServiceResult( data:Object = null, source:Object = null, event:Event = null, errors:Array = null ) {
			super( data, source, event, errors );
		}
		
		/**
		 * Returns service result object associated with the specified key from the 
		 * batch result map.
		 * 
		 * @param key			Key specified for the service result
		 */  
		public function getServiceResult( key:String ) : ServiceResult {
			return data.hasOwnProperty( key ) ? data[key] as ServiceResult : null;;
		}

		/**
		 * Returns data value associated with the specified key from the batch
		 * result map.
		 * 
		 * @param key			Key specified for the service result
		 */  
		public function getServiceResultData( key:String ) : * 
		{
			var result:ServiceResult = getServiceResult( key );
			
			return result != null ? result.data : null;
		}
	}
}